/*
 * Copyright (c) 1994-2017, Joyoung Stock CO.LTD.
 * The FWJR Project.
 * All Rights Reserved.
 */

package com.rest.business;

import com.rest.constant.JDConstant;
import com.rest.response.AddOrderResponse;
import com.rest.response.AddressDetailResponse;
import com.rest.response.AddressResponse;
import com.rest.response.AppointMentBean;
import com.rest.response.AreaResponse;
import com.rest.response.BannerListResponse;
import com.rest.response.BaseJsonResponse;
import com.rest.response.BaseListResponse;
import com.rest.response.BaseResponse;
import com.rest.response.BaseStringResponse;
import com.rest.response.ChatResponse;
import com.rest.response.CheckOrderDetailResponse;
import com.rest.response.CloudDoctorResponse;
import com.rest.response.CloudResponse;
import com.rest.response.DailyRecordDetailResponse;
import com.rest.response.DailyRecordListResponse;
import com.rest.response.DiagnoseOrderDetailResponse;
import com.rest.response.DicResponse;
import com.rest.response.Doctor;
import com.rest.response.DrugResponse;
import com.rest.response.EMSResponse;
import com.rest.response.FindPatientOrdersResponse;
import com.rest.response.HomeDeptResponse;
import com.rest.response.IMListResponse;
import com.rest.response.LoginResponse;
import com.rest.response.MedicineListResponse;
import com.rest.response.MeetingResponse;
import com.rest.response.MyFamilyListResponse;
import com.rest.response.MyFamilyResponse;
import com.rest.response.NurseConsultListResponse;
import com.rest.response.NurseListResponse;
import com.rest.response.NursingOrderDetailResponse;
import com.rest.response.NursingOrderResponse;
import com.rest.response.NursingProjectResponse;
import com.rest.response.OrderNumbersResponse;
import com.rest.response.OrderResponse;
import com.rest.response.PayResponse;
import com.rest.response.PicUploadResponse;
import com.rest.response.Prescription2Response;
import com.rest.response.PrescriptionMedhisDto;
import com.rest.response.PrescriptionResponse;
import com.rest.response.QueryProtocolResponse;
import com.rest.response.RegistrationDetailResponse;
import com.rest.response.ScheduleListResponse;
import com.rest.response.ScheduleResponse;
import com.rest.response.StringResponse;
import com.rest.response.SwitchResponse;
import com.rest.response.TeamDetailResponse;
import com.rest.response.TeamListResponse;
import com.rest.response.UserResponse;
import com.rest.response.VersionResponse;
import com.rest.response.WxPayBean;
import com.rest.response.YSGCardInfoResponse;

import java.util.List;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface IRestAPI {

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPLOAD_PAYMENT_FILE)
    Observable<BaseResponse<PicUploadResponse>> uploadFile(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST_MINIO + JDConstant.METHOD_UPLOAD_PAYMENT_FILE_MINIO)
    Observable<BaseResponse<PicUploadResponse>> uploadFileTb(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.METHOD_UPLOAD_VIDEO)
    Observable<BaseResponse<PicUploadResponse>> uploadVideo(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_LOGIN)
    Observable<BaseResponse<LoginResponse>> login(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATE_PASSWORD)
    Observable<BaseResponse<String>> updatePassword(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADDFEEDBACK)
    Observable<BaseResponse<String>> addFeedback(@Body RequestBody Body);

    @GET(JDConstant.HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_USERINFO)
    Observable<BaseResponse<UserResponse>> getUserInfo();

    @GET(JDConstant.HOST + JDConstant.METHOD_DOWNLOAD_PIC)
    Observable<ResponseBody> downloadFile(@Query("url") String url);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_MESSAGE_CODE)
    Observable<BaseResponse<String>> getMessageCode(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_REGISTER)
    Observable<BaseResponse<String>> register(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_FORGET)
    Observable<BaseResponse<String>> forget(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERY_IM_LIST)
    Observable<BaseResponse<IMListResponse>> queryIMList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DEPARTMENT_LIST)
    Observable<BaseResponse<List<Doctor>>> getDepartmentList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DEPARTMENT_LIST)
    Observable<BaseResponse<List<DicResponse>>> getDepartment2List(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DEPARTMENT_LIST)
    Observable<BaseResponse<List<DicResponse>>> getDepartment3List(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DOCTOR_LIST)
    Observable<BaseResponse<List<Doctor>>> getDoctorList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_REGISTRATION_DETAIL)
    Observable<BaseResponse<RegistrationDetailResponse>> getRegistrationDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CHAT_LIST)
    Observable<BaseResponse<ChatResponse>> getChatList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_SAVE_PATIENT_STATE)
    Observable<BaseResponse<String>> savePatientState(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADD_ORDER)
    Observable<BaseResponse<OrderResponse>> addOrder(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADD_FAMILY)
    Observable<BaseResponse<String>> addFamily(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_FAMILY)
    Observable<BaseResponse<List<MyFamilyListResponse>>> getMyFamily(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CLOUD_LIST)
    Observable<BaseResponse<List<CloudResponse>>> getCloudList(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_HOME_DEPT_LIST)
    Observable<BaseResponse<List<HomeDeptResponse>>> getHomeDeptList(@Query("flag") String flag);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CLOUD_DOCTOR_LIST)
    Observable<BaseResponse<CloudDoctorResponse>> getCloudDoctorList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DOCTOR_DETAIL)
    Observable<BaseResponse<Doctor>> getDoctorDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERYPROTOCOL)
    Observable<BaseResponse<QueryProtocolResponse>> queryProtocol(@Body RequestBody Body);

    @POST(JDConstant.HY_HOST + JDConstant.METHOD_GET_SCHEDULE_LIST)
    Observable<BaseResponse<ScheduleListResponse>> getScheduleList(@Body RequestBody Body);

    @POST(JDConstant.HY_HOST + JDConstant.METHOD_USE_SCHEDULE)
    Observable<BaseResponse<StringResponse>> useSchedule(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CREATE_CLOUD_ORDER)
    Observable<BaseResponse<OrderResponse>> createCloudOrder(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CLOUD_READY)
    Observable<BaseResponse<String>> setCloudReady(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_MEDICINE_ORDER_LIST)
    Observable<BaseResponse<MedicineListResponse>> getMedicineOrderList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CANCEL_ORDER)
    Observable<BaseResponse<String>> cancelOrder(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_MEDICINE_ORDER_DETAIL)
    Observable<BaseResponse<PrescriptionResponse>> getMedicineOrderDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CONSULTATION_LIST)
    Observable<BaseResponse<List<CloudResponse>>> getConsultationList(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_PROVINCE)
    Observable<BaseResponse<List<AreaResponse>>> getProvince();

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CITY)
    Observable<BaseResponse<List<AreaResponse>>> getCity(@Query("id") String id);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_AREA)
    Observable<BaseResponse<List<AreaResponse>>> getArea(@Query("id") String id);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GETPRESCRIPTIONMEDHISDTO_BYIDAPP)
    Observable<BaseResponse<PrescriptionMedhisDto>> getPrescriptionMedhisDtoByIdApp(@Query("id") String id);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERYRESPONSELIST)
    Observable<BaseResponse<List<EMSResponse>>> queryResponseList(@Query("prescriptionId") String prescriptionId);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DICT_LIST)
    Observable<BaseResponse<List<DicResponse>>> getDicList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CREATE_ORDER)
    Observable<BaseResponse<PayResponse>> createOrder(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CLOUD_ORDER_DETAIL)
    Observable<BaseResponse<CloudResponse>> getCloudOrderDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_FAMILY_DETAIL)
    Observable<BaseResponse<MyFamilyResponse>> getMyFamilyDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_ADDRESS_LIST)
    Observable<BaseResponse<List<AddressResponse>>> getAddressList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADD_ADDRESS)
    Observable<BaseResponse<String>> addAddress(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ADDRESS_DETAIL)
    Observable<BaseResponse<AddressDetailResponse>> addressDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATE_DIAGNOSE_STATUS)
    Observable<BaseResponse<String>> updateDiagnoseStatus(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.PATIENT_FINISH_ORDER)
    Observable<BaseResponse<String>> updatePatientDiagnoseStatus(@Body RequestBody body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_YSG_CARD_INFO)
    Observable<BaseResponse<YSGCardInfoResponse>> getYSGCardInfo(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_BIND_CARD)
    Observable<BaseResponse<String>> bindCard(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CREATE_CARD)
    Observable<BaseResponse<String>> createCard(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CHANGE_PHONE)
    Observable<BaseResponse<String>> updatePhone(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_PIC_ORDER_DETAIL)
    Observable<BaseResponse<CloudResponse>> getPicOrderDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_FINISH_MEETING)
    Observable<BaseResponse<String>> finishMeeting(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_PRESCRIPTION)
    Observable<BaseResponse<Prescription2Response>> getPrescription(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATEPRESCRIPTIONSTATUS)
    Observable<BaseResponse<Boolean>> updatePrescriptionStatus(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.MEHTOD_QUERY_ORDER_STATUS)
    Observable<BaseResponse<String>> queryOrderStatus(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATE_TOP)
    Observable<BaseResponse<String>> updateTop(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_TEAM_LIST)
    Observable<BaseResponse<List<TeamListResponse>>> getTeamList(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_TEAM_DETAIL)
    Observable<BaseResponse<TeamDetailResponse>> getTeamDetail(@Query("id") String id);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_UPDATE_UMENG_DEVICE)
    Observable<BaseResponse<String>> updateUmengDevice(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.MEHTOD_GET_PUSH_MEETING)
    Observable<BaseResponse<MeetingResponse>> getPushMeeting(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_DIAGNOSE_ORDER_DETAIL)
    Observable<BaseResponse<DiagnoseOrderDetailResponse>> diagnoseOrderDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_EVALUATE_ORDER)
    Observable<BaseResponse<String>> evaluateOrder(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_DEL_FAMILY)
    Observable<BaseResponse<String>> delFamily(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_PATIENT_DETAIL)
    Observable<BaseResponse<MyFamilyResponse>> getPatientDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DAILY_LIST)
    Observable<BaseResponse<List<DailyRecordListResponse>>> getDailyList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_DAILY_DETAIL)
    Observable<BaseResponse<DailyRecordDetailResponse>> getDailyDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CANCEL_DAILY)
    Observable<BaseResponse<String>> cancelDaily(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_REFUND)
    Observable<BaseResponse<String>> refund(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_RESOURCE_PRICE)
    Observable<BaseResponse<StringResponse>> getResourcePrice(@Query("bizType") String bizType, @Query("doctorId") String doctorId);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_VERSION)
    Observable<BaseResponse<VersionResponse>> getVersion(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_BANNER_LIST)
    Observable<BaseResponse<BannerListResponse>> getBannerList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_HELP_LIST)
    Observable<BaseResponse<List<HomeDeptResponse>>> getHelpList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_HELP_DETAIL_LIST)
    Observable<BaseResponse<BannerListResponse>> getHelpDetailList(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ORDER_NUMBERS)
    Observable<BaseResponse<List<OrderNumbersResponse>>> getOrderNumbers(@Query("userId") String userId);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CHANGENICKNAME)
    Observable<BaseResponse<String>> changeNickName(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_MODIFYUSERSTATUS)
    Observable<BaseResponse<String>> modifyUserStatus(@Body RequestBody Body);

    @Headers("Origin:" + JDConstant.YSG_HOST_MINIO)
    @POST(JDConstant.YSG_HOST_MINIO + JDConstant.METHOD_GETPRESIGNEDURL)
    Observable<BaseResponse<String>> getPresignedUrl(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_HOSLIST)
    Observable<BaseResponse<List<BaseListResponse>>> getEyeHospitalList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CREATECHECK)
    Observable<BaseResponse<BaseJsonResponse>> createCheck(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CHECKLIST)
    Observable<BaseResponse<BaseJsonResponse>> queryCheckList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CANCELCHECK)
    Observable<BaseResponse<String>> cancelCheck(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CHECKDETAIL)
    Observable<BaseResponse<BaseJsonResponse>> queryCheckDetail(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_EDITCHECKDETAIL)
    Observable<BaseResponse<BaseJsonResponse>> editCheckDetail(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_ITEM_LIST)
    Observable<BaseResponse<NursingProjectResponse>> getItemList(@Query("chargeItemType") String chargeItemType);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_APPOINTMENT_ADD)
    Observable<BaseResponse<AddOrderResponse>> addNursingAppointment(@Body AppointMentBean data);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_APPOINTMENT_LIST)
    Observable<BaseResponse<NursingOrderResponse>> getNursingOrders(@Query("page") int page);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_APPOINTMENT_DETAIL)
    Observable<BaseResponse<NursingOrderDetailResponse>> getNursingOrderDetail(@Query("appointmentId") long appointmentId);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_NURSE_REQUEST_PAY)
    Observable<BaseResponse<WxPayBean>> nurseRequestPay(@Body RequestBody body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_APPOINTMENT_DETAIL)
    Observable<BaseResponse<String>> cancleNursingOrder(@Query("orderId") long orderId);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERY_APPOINTMENT_ORDER_STATUS)
    Observable<BaseResponse<String>> queryAppointmentOrderStatus(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_APPOINTMENT_COMMENT)
    Observable<BaseResponse<String>> appointmentComment(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_APPOINTMENT_CANCEL)
    Observable<BaseResponse<String>> appointmentCancle(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERY_PREPAID_ORDER)
    Observable<BaseResponse<String>> queryPrepaidOrder(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_QUERY_DOCTOR_LISTS)
    Observable<BaseResponse<CloudDoctorResponse>> queryDoctors(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_WESTERN_SEARCH)
    Observable<BaseResponse<DrugResponse>> searchDrug(@Query("keyWords") String keyWord, @Query("current") int page);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_GET_CLOUD_NURSE_LIST)
    Observable<BaseResponse<NurseListResponse>> getNurseList(@Body RequestBody Body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.CREATE_APPOINT_NURSE_ORDER)
    Observable<BaseResponse<BaseResponse>> createAppointNurseOrder(@Body RequestBody body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.PATIENT_ORDER)
    Observable<BaseResponse<FindPatientOrdersResponse>> findPatientOrders(@Query("current") int current, @Query("size") int size);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.CANCEL_NURSE_ORDER)
    Observable<BaseResponse<String>> cancleNurseConsult(@Body RequestBody body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_EVALUATE_ORDER)
    Observable<BaseResponse<String>> evaluateConsultOrder(@Body RequestBody body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.NURSE_CONSULT_DETAIL)
    Observable<BaseResponse<RegistrationDetailResponse>> getNurseConsultDetail(@Query("diagnoseId") String diagnoseId);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.NURSE_CONSULT_LIST)
    Observable<BaseResponse<NurseConsultListResponse>> queryNurseConsultList(@Query("current") int current, @Query("size") int size);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.PATIENT_MEDICAL_RECORDS)
    Observable<BaseResponse<Boolean>> patientMedicalRecords(@Query("patientId") String current);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_LOGOUT)
    Observable<BaseResponse<String>> logOut(@Body RequestBody Body);

    @GET(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.ALIPAYUSER_GETSWITCH)
    Observable<BaseResponse<SwitchResponse>> getAlipaySwitch();

    @POST(JDConstant.YSG_HOST + JDConstant.METHOD_REGISTER_HEPING)
    Observable<BaseResponse<ScheduleResponse>> registerHePing(@Body RequestBody body);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CHECKOUT_ORDER_DETAIL)
    Observable<BaseResponse<CheckOrderDetailResponse>> getCheckoutOrderDetail(@Path("orderId") String orderId);

    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_CHANGE_ORDER_STATUS)
    Observable<BaseResponse> changeStatus(@Path("id") String id, @Path("type") int type);
    @POST(JDConstant.YSG_HOST + JDConstant.BASE_URL + JDConstant.METHOD_REPORTVIOLATIONS)
    Observable<BaseResponse<String>> reportViolations(@Body RequestBody Body);

}
